#include <stdio.h>
#include <string.h>
#include <assert.h>
//char* strstr(const char* str1, const char* str2)
//查找子字符串,找到时返回str2在str1中的起始位置，找不到返回空指针

char* my_strstr(const char* str1, const char* str2)
{
    assert(str1 && str2);

    if(*str2 == '\0')
    return (char*)str1;

    while(*str1)//当*str1为'\0'时循环结束，返回NULL
    {
        while(*str1 != *str2)//找到第一个字符相等的位置
        {
            str1++;
            if(*str1 == '\0')
            return NULL;
        }
        const char* str3 = str1;
        const char* str4 = str2;
        while(*str3++ == *str4++)//检查改位置是否符合条件
        {
            if(*str4 == '\0')
            return (char*)str1;
        }
        str1++;//未返回说明不符合，第一个指针移动一次
    }
    return NULL;
}

int main()
{
    char email[] = "zpw@bitejiuyeke.com";
    char substr[] = "bitejiuyeke";
    char* ret = my_strstr(email, substr);
    if(ret == NULL)
    {
        printf("子串不存在\n");
    }
    else
    {
        printf("%s\n", ret);
    }

    return 0;
}